home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / UTIL / SYS / PROG / _files / _PROG / ReadMe < prev    next >
Text File  |  1990-06-10  |  6KB  |  227 lines

  1.  
  2. !PROG V1.00 - Copyright Chris Murray, 10th June 1990
  3. ----------------------------------------------------
  4.  
  5. Conceived and knocked up overnight, no guarantees...
  6.  
  7. In my opinion, the RISC OS Desktop provides a great user
  8. interface, but there are some annoying ommissions.  When
  9. I'm working on a project, I typically load up 5 or 6 extra
  10. applications (e.g. !BEdit, !Trash, !Twin, !More, !SetType).
  11. Most of these programs perform very similar basic tasks -
  12. you drag a file onto their icon, and they perform:
  13.  
  14.            <some *command> <dragged filename>
  15.  
  16. The majority of these kind of front ends are written in
  17. BASIC which means (on a 1MB machine) they use usually at
  18. least 16k each, which can soon mount up.
  19.  
  20. Essentially, !PROG is a PROGgrammable application.  You can
  21. alter its function dynamically.  This proves to be very
  22. powerful.  For example, PROG can provide the basic features
  23. of all those mentioned above (if you enter the correct PROG
  24. command :-).  And because you have just the one application
  25. instead of many, you have an emptier desktop, more memory
  26. and less context switches.
  27.  
  28.  
  29.  
  30. SYNTAX
  31. ------
  32.  
  33. You tell PROG what to do by entering a PROG command.
  34.  
  35. A PROG command 'Line' is defined to be:
  36.  
  37.         Line --> <EOLN>
  38.         Line --> {%}COMMAND{*}{;Line}
  39.         Line --> @STRING{|}{;Line}
  40.  
  41. where
  42.         <EOLN>  is 'end-of-line'
  43.         COMMAND is a system/module/transient command
  44.         STRING  is a string of ASCII characters
  45.  
  46. Preceeding a command with '%' means it is send straight to
  47. the CLI i.e. NOT executed as a WimpTask.  This is needed to
  48. get the correct results sometimes (see below).
  49.  
  50. A '@' causes the following STRING to be appended into the
  51. keyboard buffer.  This allows you to send strings to
  52. editors etc. on entry.  The optional '|' character sends a
  53. carriage return at the end (e.g. to simulate pressing the
  54. RETURN key).
  55.  
  56. The ';' is the conjunction character - it is used to
  57. define the end of each command in a sequence of commands.
  58.  
  59. Most importantly, the '*' character causes the (current)
  60. dragged filename to be substituted in its place.
  61.  
  62. An item in braces {} is optional, otherwise it is not.
  63. A Line is defined recursively on itself so you may define
  64. quite complex sequences (up to a max of 255 characters).
  65.  
  66.  
  67.  
  68. OPERATION
  69. ---------
  70.  
  71. Click SELECT or ADJUST on the !PROG icon to pop up the PROG
  72. command window.  This displays the current PROG command in
  73. a small writeable icon.  To define a PROG command, click on
  74. the writable icon and type in your command.  Then, you may
  75. drag files onto the !PROG icon or into its window,
  76. whereupon PROG will try to execute the command.  You may
  77. repeat the previous command by clicking on the 'DO' icon in
  78. the PROG window.  This also allows you to execute commands
  79. without aby dragged files.  Note you may drag multiple
  80. files into PROG, which is very useful when you want to,
  81. for example, set the filetypes of a lot of files to the
  82. same filetype.
  83.  
  84.  
  85.  
  86. Examples
  87. --------
  88.  
  89. It can be quite annoying when you double click on a sprite
  90. or text file after !Paint or !Edit has been seen (and not
  91. loaded) if you just want to *type or *screenload the file.
  92.  
  93. Program PROG with
  94.  
  95.         SCREENLOAD *
  96.  
  97. and it will screenload files dragged into it.
  98.  
  99.  
  100.  
  101. Similarly,
  102.  
  103.         TYPE *
  104.  
  105. will type the file.
  106.  
  107.  
  108.  
  109. If you wish to UNLOCK some files, program PROG with
  110.  
  111.         ACCESS * WR
  112.  
  113. or
  114.         ACCESS * LRW
  115.  
  116. to lock them.
  117.  
  118.  
  119.  
  120. To make PROG perform as a (rather dangerous) trashcan:
  121.  
  122.         WIPE * F~C~V~R
  123.  
  124.  
  125.  
  126. To make PROG set file types to FFF (text):
  127.  
  128.         SETTYPE * FFF
  129.  
  130.  
  131.  
  132. To make PROG load dragged files into BASIC:
  133.  
  134.         BASIC -LOAD *
  135.  
  136. Assuming the BASIC Editor is loaded, this will
  137. automatically call it with the dragged file:
  138.  
  139.         @EDIT| ; BASIC -LOAD *
  140.  
  141. Note the '@' meaning put "EDIT" into the keyboard
  142. buffer, and the '|' meaning send a return.
  143.  
  144. This is very useful.  If you want to repeatedly edit
  145. the same file you can just click on "DO".  You are NOT
  146. automatically put in the home directory of dragged
  147. files though, which means if you save the file, it
  148. will be to the current directory.
  149.  
  150. Here's another example where you might want the editor
  151. to go to the part you're working on (e.g. PROCbananas):
  152.  
  153.         @EDIT DEFPROCbananas| ; BASIC -LOAD *
  154.  
  155. You can do similar things for Twin.
  156.  
  157.  
  158.  
  159. If you want to examine files in detail...
  160.  
  161.         FILEINFO * ; COUNT * ; DUMP *
  162.  
  163.  
  164.  
  165. Or how about this...
  166.  
  167.         Filer_OpenDir *
  168.  
  169. Say you want to open all the directories in a window
  170. (say you're looking for a file).  Similarly, for
  171. Filer_CloseDir.
  172.  
  173.  
  174.  
  175. A crude !SetDir...
  176.  
  177.         DIR *
  178.  
  179. If you drag in a directory icon, your current directory
  180. will be set to it.
  181.  
  182.  
  183. You needn't actually have any '*' characters, e.g.
  184.  
  185.         EX
  186.  
  187. Clicking "DO" will just examine the current directory.
  188.  
  189.  
  190.  
  191. More examples...
  192.  
  193.         HELP FILECOMMANDS
  194.  
  195.         @LISTIFDEFPROC| ; BASIC -LOAD *
  196.  
  197.         @MODE 0| ; @LIST| ; BASIC -LOAD * 
  198.  
  199.         MODULES ; ROMMODULES ; ECHO Hello there! ; TIME
  200.  
  201.         DIR $.user ; cc *
  202.  
  203.         %DUMP * { > RAM:OUTPUT }
  204.  
  205. Note the '%' in the last example.  If you don't do this,
  206. the file redirection won't work properly as a WimpTask.
  207.  
  208.  
  209.  
  210. You can have multiple PROGs if you wish.  I rarely use
  211. more than 3.  Its best to leave their windows open so
  212. you can see what each one's function is (and you can
  213. change them quickly).  For that reason, I've made the
  214. PROG windows boundless.  That means you can move them
  215. off screen, like DTPs, when you want to clear the screen
  216. up a bit without closing the windows.
  217.  
  218.  
  219. I'm away to get some lunch, I'm starving...
  220.  
  221. Enjoy,
  222.  
  223.  -Chris.
  224.  
  225. ecwu58@uk.ac.ed.castle
  226. cpm@uk.ac.ed.lfcs
  227.